package com.huzz.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.huzz.entity.SysMenu;
import com.huzz.entity.SysPermission;
import com.huzz.entity.SysRole;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Name 名称
 * @Description 描述
 * @Author 童年的纸飞机
 * @Since 2023-04-2023/4/26 15:33
 */
@Mapper
public interface SysRoleMapper extends BaseMapper<SysRole> {

    /**
     * 根据userId查询角色列表
     * @param userId
     * @return
     */
    List<SysRole> findRoleListByUserId(@Param("userId") Integer userId);

    /**
     * 删除指定角色的角色权限关联
     * @param roleId
     */
    int clearRolePermissionListByRoleId(@Param("roleId") Integer roleId);

    /**
     * 新建角色权限关联
     * @param roleId
     * @param permissionIdList
     * @return
     */
    int saveRolePermissionBatch(@Param("roleId") Integer roleId, @Param("permissionIdList") List<Integer> permissionIdList);

    /**
     * 删除指定角色的角色菜单关联
     * @param roleId
     * @return
     */
    int clearRoleMenuListByRoleId(@Param("roleId") Integer roleId);

    /**
     * 新建角色菜单关联
     * @param roleId
     * @param menuIdList
     * @return
     */
    int saveRoleMenuIdListBatch(@Param("roleId") Integer roleId, @Param("menuIdList") List<Integer> menuIdList);

    /**
     * 根据roleId查询权限列表
     * @param roleId
     * @return
     */
    List<SysPermission> findPermissionListByRoleId(@Param("roleId") Integer roleId);

    /**
     * 根据roleId查询菜单列表
     * @param roleId
     * @return
     */
    List<SysMenu> findMenuListByRoleId(Integer roleId);

}
